package com.evil.application.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.evil.application.pojo.dto.queue.AddQueueReqDTO;
import com.evil.application.pojo.dto.queue.MyQueueReqDTO;
import com.evil.application.pojo.dto.queue.QueueRespDTO;
import com.evil.application.pojo.dto.queue.UpdateQueueResultReqDTO;
import com.evil.application.pojo.entity.ApplicationQueue;
import com.evil.common.application.enums.queue.QueueStatusEnum;
import org.springframework.validation.annotation.Validated;

import java.util.List;

/**
 * 应用队列表
 *
 * @author liyang
 * @date 2022-08-08 00:00
 */
public interface ApplicationQueueService extends IService<ApplicationQueue> {

    /**
     * 我的队列
     *
     * @param myQueueReqDTO myQueueReqDTO
     * @return List
     */
    List<QueueRespDTO> myQueue(@Validated MyQueueReqDTO myQueueReqDTO);

    /**
     * 添加应用队列
     *
     * @param addQueueReqDTO addQueueReqDTO
     * @return QueueRespDTO
     */
    QueueRespDTO addQueue(@Validated AddQueueReqDTO addQueueReqDTO);

    /**
     * 更新应用队列结果
     *
     * @param queueId         queueId
     * @param queueStatusEnum queueStatusEnum
     * @param queueContent    queueContent
     */
    void updateQueueResult(Long queueId, QueueStatusEnum queueStatusEnum, String queueContent);

    /**
     * 更新应用队列结果
     *
     * @param updateQueueResultReqDTO updateQueueResultReqDTO
     */
    void updateQueueResult(@Validated UpdateQueueResultReqDTO updateQueueResultReqDTO);

}
